// This code is generated automatically by Exentials SnwConnector
namespace Exentials.Snw.Functions
{
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Exentials.Snw;
    using Exentials.Snw.SnwConnector;
    using Exentials.Snw.Functions;
    using Exentials.Snw.Structures;
    
    
    public sealed class RfcGetStructureDefinition : Exentials.Snw.SnwConnector.SnwFunction, Exentials.Snw.SnwConnector.IImport<RfcGetStructureDefinition.ImportParameters>, Exentials.Snw.SnwConnector.IExport<RfcGetStructureDefinition.ExportParameters>, Exentials.Snw.SnwConnector.ITables<RfcGetStructureDefinition.TablesParameters>
    {
        
        private ImportParameters _import;
        
        private ExportParameters _export;
        
        private TablesParameters _tables;
        
        public RfcGetStructureDefinition(Exentials.Snw.SnwConnector.SnwConnection connection) : 
                base("RFC_GET_STRUCTURE_DEFINITION", connection)
        {
        }
        
        public ImportParameters Import
        {
            get
            {
                if ((this._import == null))
                {
                    this._import = new ImportParameters(this);
                }
                return this._import;
            }
        }
        
        public ExportParameters Export
        {
            get
            {
                if ((this._export == null))
                {
                    this._export = new ExportParameters(this);
                }
                return this._export;
            }
        }
        
        public TablesParameters Tables
        {
            get
            {
                if ((this._tables == null))
                {
                    this._tables = new TablesParameters(this);
                }
                return this._tables;
            }
        }
        
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
        public sealed class ImportParameters : Exentials.Snw.SnwConnector.SnwParametersContainer
        {
            
            public ImportParameters(RfcGetStructureDefinition container) : 
                    base(container)
            {
            }
            
            /// <summary>
            /// Table name
            /// </summary>
            public string Tabname
            {
                get
                {
                    return this.GetParameter<string>("TABNAME", 30, 0);
                }
                set
                {
                    this.SetParameter("TABNAME", value, 30, 0);
                }
            }
            
            /// <summary>
            /// Table name
            /// </summary>
            public byte[] Uclen
            {
                get
                {
                    return this.GetParameter<byte[]>("UCLEN", 1, 0);
                }
                set
                {
                    this.SetParameter("UCLEN", value, 1, 0);
                }
            }
        }
        
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
        public sealed class ExportParameters : Exentials.Snw.SnwConnector.SnwParametersContainer
        {
            
            public ExportParameters(RfcGetStructureDefinition container) : 
                    base(container)
            {
            }
            
            /// <summary>
            /// Length of the table in bytes
            /// </summary>
            public int Tablength
            {
                get
                {
                    return this.GetParameter<int>("TABLENGTH", 4, 0);
                }
                set
                {
                    this.SetParameter("TABLENGTH", value, 4, 0);
                }
            }
        }
        
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
        public sealed class TablesParameters : Exentials.Snw.SnwConnector.SnwParametersContainer
        {
            
            private Exentials.Snw.SnwConnector.SnwTable<RfcFields> _fields;
            
            public TablesParameters(RfcGetStructureDefinition container) : 
                    base(container)
            {
            }
            
            /// <summary>
            /// Field names and features
            /// </summary>
            public Exentials.Snw.SnwConnector.SnwTable<RfcFields> Fields
            {
                get
                {
                    if ((this._fields == null))
                    {
                        this._fields = this.GetParameter<Exentials.Snw.SnwConnector.SnwTable<RfcFields>>("FIELDS", 80, 0);
                    }
                    return this._fields;
                }
            }
        }
    }
}
